package muni.ilo.service;
// un servicio es un componente que encapsula la liguca del negocio  de nuestra aplicacion
// por cada caso de uso de analisis, tendremos un service
// tendra las operaciones necesarias para impremmentar el caso de uso 

import java.util.*;

import muni.ilo.dao.DAOFactory;
import muni.ilo.dao.Usuario_IF;
import muni.ilo.dto.DistritoDTO;
import muni.ilo.dto.TipoUsuarioDTO;
import muni.ilo.dto.UsuarioDTO;
import muni.ilo.dto.UsuarioLoginDTO;


public class UsuarioDaoService implements UsuarioIFService {
	private Usuario_IF dao;
	DAOFactory fabrica = null;
	
	public UsuarioDaoService(int witcFactory){
		fabrica = DAOFactory.getDAOFactory(witcFactory);
		this.dao = fabrica.getUsuarioDAO();
	}
	
	public List<UsuarioDTO> listaPorNombre(String codUsua) 
											throws Exception{

		List<UsuarioDTO> usuario = new ArrayList<UsuarioDTO>();
		usuario = dao.listaPorNombre(codUsua);

		return usuario;
	}
	public List<UsuarioDTO> listaUsuario(UsuarioDTO usua) 
									throws Exception{
		
		List<UsuarioDTO> usuario = new ArrayList<UsuarioDTO>();
		
		usuario = 
			dao.listaPorNombre(usua.getNombre());
		
		return usuario;
	}
	
	public String desactivarUsuario(UsuarioDTO usua) 
									throws Exception{
		String strResp = null;
		strResp = dao.desactivarUsuario(usua.getCodigo());
		return strResp;
	}
	public String activarUsuario(UsuarioDTO usua) 
									throws Exception{
		String strResp = null;
		strResp = dao.activarUsuario(usua.getCodigo());
		return strResp;
	}

	
	public String insertarUsuario(UsuarioDTO usua) throws Exception {
		String strResp = null;
		strResp = dao.registrarUsuario(usua);
		return strResp;
	}

	public UsuarioDTO buscarUsuarioPorCodigo(String cod)
									throws Exception {
		return dao.buscarUsuarioPorCodigo(cod);
	}

	
	public String modificar(UsuarioDTO usua) throws Exception {
		String strResp = null;
		strResp = dao.modificar(usua);
		return strResp;
	}

	public List<DistritoDTO> listaDistritos() throws Exception {

		List<DistritoDTO> distrito = new ArrayList<DistritoDTO>();
		distrito = dao.listaDistritos();

		return distrito;
	}

	public List<TipoUsuarioDTO> listaTipos() throws Exception {
		List<TipoUsuarioDTO> tipo = new ArrayList<TipoUsuarioDTO>();
		tipo = dao.listaTipos();

		return tipo;
	}

	public UsuarioLoginDTO usuarioLogin(String log, String pass)
												throws Exception {
		return dao.usuarioLogin(log, pass);
	}

}
